package cn.lanca.gof0_5._05builder.case1.builder;

import com.example.demo.gof0_5._05builder.case1.product.Product;

/**
 * 抽象建造者：包含创建产品各个子部件的抽象方法。
 *
 * @author meihongliang
 * @since 2020/8/7 16:52
 */
public abstract class Builder {

    /**
     * 创建产品对象
     */
    protected Product product = new Product();

    /**
     * 抽象方法 buildPartA
     */
    public abstract void buildPartA();

    /**
     * 抽象方法 buildPartB
     */
    public abstract void buildPartB();

    /**
     * 抽象方法 buildPartC
     */
    public abstract void buildPartC();


    /**
     * 返回产品对象
     *
     * @return Product
     */
    public Product getResult() {
        return product;
    }
}
